// function hookdebug(){
//     Java.perform(function(){
//         // 设置 setWebContentsDebuggingEnabled为 false
//         Java.use("android.webkit.WebView").setWebContentsDebuggingEnabled.implementation = function(args){
//             console.log("hook setWebContentsDebuggingEnabled " + args);
//             return this.setWebContentsDebuggingEnabled(true)
//         }


//     })
// }
// function startdebug(){
//     Java.perform(function(){
//         Java.scheduleOnMainThread(function(){  // 主线程调用， 没有设置setWebContentsDebuggingEnabled
//             Java.use("android.webkit.WebView").setWebContentsDebuggingEnabled(true);
//         })
//     })
// }
// hookdebug()
Java.perform(function () {
    //实例化一个对象
    var WebView = Java.use('android.webkit.WebView');
    //重写WebView类的重载方法，因为setWebContentsDebuggingEnabled不是静态方法，所以需要一个对象来调用这个方法
    WebView.$init.overload('android.content.Context').implementation = function (a) {
        console.log("WebView.$init is called!1");
        var retval = this.$init(a);
        this.setWebContentsDebuggingEnabled(true);
        return retval;
    }
    WebView.$init.overload('android.content.Context', 'android.util.AttributeSet').implementation = function (a, b) {
        console.log("WebView.$init is called!2");
        var retval = this.$init(a, b);
        this.setWebContentsDebuggingEnabled(true);
        return retval;
    }
    WebView.$init.overload('android.content.Context', 'android.util.AttributeSet', 'int').implementation = function (a, b, c) {
        console.log("WebView.$init is called!3");
        var retval = this.$init(a, b, c);
        this.setWebContentsDebuggingEnabled(true);
        return retval;
    }
    //始终设置为true,打开调试
    WebView.setWebContentsDebuggingEnabled.implementation = function () {
        this.setWebContentsDebuggingEnabled(true);
        console.log("setWebContentsDebuggingEnabled is called!");
    }

});
 
// frida -U -f package_name -l .\hook.js --no-pause